/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package lintulaskenta.pulautin;

import lintulaskenta.validointi.TipuApiValidator;
import java.io.IOException;
import java.util.ArrayList;
import lintulaskenta.entity.Havainnointitapahtuma;
import lintulaskenta.entity.Reitti;
import lintulaskenta.entity.Pistevuosi;
import lintulaskenta.entity.Lajihavainto;
import lintulaskenta.entity.Parvihavainto;
import lintulaskenta.rekisteri.ReittiRekisteri;
import lintulaskenta.utils.*;

/**
 *
 * @author amjaalto
 */
public class PulauttimenAjajaV3 {


    /*
     * Pulautetaan perättäisdatasta Havainnointikokonaisuus, eli yhden reitin kaikki havainnot. Parametrina annetaan
     * lukumäärä näille kokonaisuuksille. Perättäisdatassa on yhteensä 280 reittiä joten se on suurin arvo jonka voi antaa.
     * Jokainen kokonaisuus validoidaan ennen kantaan talletusta.
     */
    public static void ajaKantaan(int kokonaisuuksia) throws IOException, Exception{

        if (kokonaisuuksia > 280)
            return;

        TipuApiValidator validator = new TipuApiValidator();
        //ReittiRekisteri rekisteri = new ReittiRekisteri();
        int oikein = 0;
        int vaarin = 0;
        PulautinV3 pulautin = new PulautinV3();

        for (int i = 0; i < kokonaisuuksia; i++) {
            Havainnointikokonaisuus hk = new Havainnointikokonaisuus();

            pulautin.tuotaHavainnointikokonaisuusOlio();

            hk = pulautin.getHK();

            Reitti reitti = hk.getReitti();


//            System.out.println("REITIN HAVAINNOINTITAPAHTUMAT: " + reitti3.getHavainnointitapahtumat().size());
//            System.out.println("PISTEVUOSIA: " + Pistevuosilista.size());
//            System.out.println("PARVIHAVAINTOJA: " + Parvihavaintolista.size());
//            System.out.println("LAJIHAVAINTOJA: " + Lajihavaintolista.size());

            /* OBS OBS OBS OBS OBS OBS
             *      HUOM! merge kommentoituna pois!!
              OBS OBS OBS OBS OBS OBS OBS OBS         */

//            if (validator.tarkistareittiOlio(reitti3) == true) {

            //rekisteri.mergeEntity(reitti);

//            }

            boolean lisataanko = validator.tarkistaReittiOlio(reitti);

            if (lisataanko == true) {

                oikein++;
            }
            if (lisataanko == false) {
                //System.out.println("Ylläolevat virheet tällä reitillä: " + reitti.getVanhaReittiNumero() + "\n\n");
                vaarin++;
            }


        }
        System.out.println("\nValideja reittejä: " + oikein + "\nEpävalideja reittejä: " + vaarin);
        validator.suljeWriter();
    }

    public static void main(String[] args) throws IOException, Exception{
        ajaKantaan(280);
    }
}
    

